package com.aisino.cvasp.application.service;

import com.aisino.cvasp.application.domain.Education;
import com.aisino.cvasp.application.domain.FormData;
import com.aisino.cvasp.application.util.DateUtils;
import com.aisino.cvasp.application.util.ObjectFieldOfNoNull;
import com.itextpdf.text.*;
import com.itextpdf.text.pdf.*;
import org.apache.commons.io.IOUtils;

import java.io.FileInputStream;
import java.io.IOException;
import java.util.List;

public class CreatePhoto {

    public static String photoPath = "D:\\privateWorkSpace\\my-itext5-pdf-master\\my-itext5-pdf-master\\src\\main\\resources\\template\\pyy.png";


    public static void createPhoto( AcroFields acroFields, PdfStamper ps ) throws DocumentException, IOException {

        /**
         * 因为直接向域中插入文本和图片没有直接的方法(也许有，但是我可能没有找到)(图片域不支持直接插图片)，采用的是获取域的位置，在指定位置上插入表格或者图片
         */
        List<AcroFields.FieldPosition> positions =  acroFields.getFieldPositions("image");
        Rectangle signRect = positions.get(0).position;
        int pageNo = positions.get(0).page; //该表单所在页码

        float x = signRect.getLeft(); //该表单坐标
        float y = signRect.getBottom();//该表单坐标
        float widthy = signRect.getWidth();//该表单宽
        float height = signRect.getHeight();//该表单高

        Image img = Image.getInstance(photoPath);


        img.scaleAbsolute(widthy, height); //设置图片宽高
        img.setAbsolutePosition(x, y); //设置图片坐标

        PdfContentByte over   = ps.getOverContent(pageNo); //指定所在页码

        over.addImage(img);

        PdfGState pdfGState = new PdfGState();
        pdfGState.setFillOpacity(0.8F);  //给图片设置透明度
        over.setGState(pdfGState);

        // ！！！注意 不能setFullCompression 设置压缩，会破坏图片 不显示
        //PdfStamper.setFullCompression();
        //确保在创建 PdfStamper 实例后立即使用此方法，问题将得到解决 .

    }

    public static void createPhoto2(Document document  ) throws DocumentException, IOException {

        //图片1
        Image image = Image.getInstance(photoPath);
        //设置图片位置的x轴和y周
        image.setAbsolutePosition(200f, 350f);
        //设置图片的宽度和高度
        image.scaleAbsolute(200, 200);
        //将图片1添加到pdf文件中
        document.add(image);

    }

}
